home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / DBASE_UT / TPDB335 / TPDB.ASM < prev    next >
Assembly Source File  |  1993-11-02  |  2KB  |  110 lines

  1. ; TPDB.asm
  2. ; Brian Corll February 17, 1989
  3. ; String functions for TPDB.pas
  4. ; Public Domain
  5.  
  6. CODE  SEGMENT BYTE PUBLIC
  7.  
  8.       Assume CS : CODE
  9.  
  10.       PUBLIC Replicate,Upper,Lower
  11.  
  12. ; Function Upper(InStr : String) : String;
  13.  
  14. UpperResult EQU    DWORD PTR [BP+10]
  15. UpperStr    EQU    DWORD PTR [BP+6]
  16.  
  17.  
  18. Upper       PROC   FAR
  19.  
  20.             push bp
  21.             mov  bp,sp
  22.             push ds
  23.             LDS  si,UpperStr
  24.             LES  di,UpperResult
  25.             CLD
  26.             LODSB
  27.             STOSB
  28.             mov  cl,al
  29.             xor  ch,ch
  30.             JCXZ UPPER3
  31.  
  32. UPPER1:     LODSB
  33.             CMP  al,'a'
  34.             JB   UPPER2
  35.             CMP  al,'z'
  36.             JA   UPPER2
  37.             sub  al,'a'-'A'
  38.  
  39. UPPER2:     STOSB
  40.             LOOP UPPER1
  41.  
  42. UPPER3:     pop  ds
  43.             pop  bp
  44.             ret  4
  45.  
  46. Upper       ENDP
  47.  
  48.  
  49. ; Function Lower(InStr : String) : String;
  50.  
  51. LowerResult EQU    DWORD PTR [BP+10]
  52. LowerStr    EQU    DWORD PTR [BP+6]
  53.  
  54.  
  55. Lower       PROC   FAR
  56.  
  57.             push bp
  58.             mov  bp,sp
  59.             push ds
  60.             LDS  si,LowerStr
  61.             LES  di,LowerResult
  62.             CLD
  63.             LODSB
  64.             STOSB
  65.             mov  cl,al
  66.             xor  ch,ch
  67.             JCXZ LOWER3
  68.  
  69. LOWER1:     LODSB
  70.             CMP  al,'A'
  71.             JB   LOWER2
  72.             CMP  al,'Z'
  73.             JA   LOWER2
  74.             add  al,'a'-'A'
  75.  
  76. LOWER2:     STOSB
  77.             LOOP LOWER1
  78.  
  79. LOWER3:     pop  ds
  80.             pop  bp
  81.             ret  4
  82.  
  83. Lower       ENDP
  84.  
  85.  
  86.  
  87. ; Function  Replicate(Ch : Char;Count : word) : String;
  88. RepResult   EQU    DWORD PTR [BP+10]
  89. RepChar     EQU    BYTE  PTR [BP+8]
  90. RepCount    EQU    BYTE  PTR [BP+6]
  91.  
  92. Replicate   PROC   FAR
  93.             push   bp
  94.             mov    bp,sp
  95.  
  96.             LES    di,RepResult
  97.             mov    al,RepCount
  98.             CLD
  99.             STOSB
  100.             mov    cl,al
  101.             xor    ch,ch
  102.             mov    al,RepChar
  103.             REP    STOSB
  104.             pop    bp
  105.             ret    4
  106.  
  107. Replicate   ENDP
  108.  
  109. CODE        ENDS
  110.             END